//
//  BannerSectionModel.swift
//  iPhone
//
//  Created by Toj on 5/24/23.
//

import UIKit

class GeneralSectionModel: NSObject, UICollectionViewSectionModelProtocol {

    private(set) var _items: [UICollectionViewCellModelProtocol] = []
    
    init(items: [UICollectionViewCellModelProtocol]) {
        self._items = items
    }
    
    override init() {
        super.init()
    }
    
    /// 组内数据
    var items: [UICollectionViewCellModelProtocol] {
        get { return _items }
        set { _items = newValue }
    }
    
    func append(item: UICollectionViewCellModelProtocol) {
        items.append(item)
    }
    
    func insert(item: UICollectionViewCellModelProtocol, at index: Int) {
        items.insert(item, at: index)
    }
    
    func remove(at index: Int) {
        items.remove(at: index)
    }
    
    /** 布局 */
    // section 上下左右的间距
    var layoutEdgeinset: UIEdgeInsets { return .zero }
    
    // 头部大小
    var headerSize: CGSize { return .def_cipher }
    
    // 尾部大小
    var footerSize: CGSize { return .def_cipher }
    
    /* 滚动方向相同的间距
     * 垂直滚动: 表示垂直间距.
     * 水平滚动: 表示水平间距.
     */
    var minimumLineSpacing: CGFloat { return .cg_cipher }
    /* 滚动方向垂直的间距
     * 垂直滚动: 表示水平间距.
     * 水平滚动: 表示垂直间距.
     */
    var minimumInteritemSpacing: CGFloat { return .cg_cipher }
}

/** 布局 */
class STNativeAdSectionModel: GeneralSectionModel {
    
    /** 布局 */
    // section 上下左右的间距
    override var layoutEdgeinset: UIEdgeInsets {
        return UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10)
    }

    /* 滚动方向相同的间距
     * 垂直滚动: 表示垂直间距.
     * 水平滚动: 表示水平间距.
     */
    override var minimumLineSpacing: CGFloat { return 20 }
    /* 滚动方向垂直的间距
     * 垂直滚动: 表示水平间距.
     * 水平滚动: 表示垂直间距.
     */
    override var minimumInteritemSpacing: CGFloat { return 20 }
}
